package com.jch.dm.chapter_13_visitor;

import com.jch.dm.chapter_11_composite.FileTreatmentException;

import java.util.Iterator;

/**
 * @author: Administrator
 * @create: 2020/04/01 19:09
 **/
public abstract class Entry implements Element{

    /**
     * 获取名称
     * @return 名称
     */
    public abstract String getName();

    /**
     * 获取大小
     * @return 大小
     */
    public abstract int getSize();

    /**
     * 增加目录条目
     * @param entry 条目
     * @return 条目信息
     * @throws FileTreatmentException
     */
    public Entry add(Entry entry) throws FileTreatmentException {
        throw new FileTreatmentException();
    }

    /**
     * 生成Iterator
     * @return iterator
     * @throws FileTreatmentException
     */
    public Iterator iterator() throws FileTreatmentException {
        throw new FileTreatmentException();
    }

    /**
     * 显示字符串
     * @return 条目信息
     */
    @Override
    public String toString(){
        return getName()+ " ("+getSize()+")";
    }
}
